﻿Imports AutoCAD

Public Interface ICadUcsService

    Function getZeroPoint() As Double()
    Function getDefaultXAxis() As Double()
    Function getDefaultYAxis() As Double()
    Function getDefaultZAxis() As Double()


    ''' <summary>
    ''' 添加UCS
    ''' </summary>
    ''' <param name="doc"></param>
    ''' <param name="ucsName"></param>
    ''' <param name="XVector"></param>
    ''' <param name="YVector"></param>
    ''' <param name="Origin"></param>
    ''' <returns></returns>
    Function addUcs(ByRef doc As AcadDocument, ByRef ucsName As String, ByRef XVector As Double(), ByRef YVector As Double(), ByRef Origin As Double()) As AcadUCS
    Function addUcs(ByRef doc As AcadDocument, ByRef ucsName As String, ByRef XVector As Double(), ByRef YVector As Double()) As AcadUCS
    ''' <summary>
    ''' 添加一个与WCS相同的 ucs
    ''' </summary>
    ''' <param name="doc"></param>
    ''' <param name="ucsName"></param>
    ''' <returns></returns>
    Function addUcs(ByRef doc As AcadDocument, ByRef ucsName As String) As AcadUCS




    ''' <summary>
    ''' 坐标点三维旋转, 该算法以坐标系0点为轴, 绕xyz三轴旋转, 返回新坐标点
    ''' </summary>
    ''' <param name="x"></param>
    ''' <param name="y"></param>
    ''' <param name="z"></param>
    ''' <param name="angleX"></param>
    ''' <param name="angleY"></param>
    ''' <param name="angleZ"></param>
    ''' <returns></returns>
    Function rotatePoint(x As Double, y As Double, z As Double, angleX As Double, angleY As Double, angleZ As Double) As Double()

    Function rotatePoint(vector As Double(), angleX As Double, angleY As Double, angleZ As Double) As Double()


    ''' <summary>
    ''' 旋转UCS
    ''' </summary>
    ''' <param name="ucs"></param>
    ''' <param name="angleX"></param>
    ''' <param name="angleY"></param>
    ''' <param name="angleZ"></param>
    ''' <returns></returns>
    ''' <remarks> 提示: 旋转 UCS 无需在意在意其当前所在位置, 因 UCS 的 XVector 与 YVector 不受 Origin 影响 </remarks>
    Function rotateUcs(ByRef ucs As AcadUCS, angleX As Double, angleY As Double, angleZ As Double) As AcadUCS

End Interface
